J’ai déjà écrit plusieurs fois sur les architectures idéales qui devraient être mises en place pour faciliter l’intégration des solutions PLM avec le reste des applications d’entreprise et surtout pour changer le point de vue des responsables IT en partant toujours de la spécification d’un service fonctionnel (créer un article, créer une version,… ) pour ensuite comprendre ce que cela implique et ce qui, potentiellement, serait distribué à travers plusieurs applications (nouvelle référence dans l’ERP, circuit de validation aux achats,…). Lors du dernier PLMLab, au déjeuner j’ai pu discuter avec un industriel qui à ma grande surprise avait déjà une démarche très poussée dans ce sens avec une plateforme SOA qui permettait de gérer ses services et qui était le vrai socle principal de leur stratégie IT général (intégrant autant l’ERP, que le PLM, le CRM,…). L’expérience de cet industriel semblant être concluante j’en profite pour faire un rappel de ce qu’est l’ESB et du panorama des solutions disponibles.
Enterprise Service Bus
L’Enterprise Service Bus, Bus de services de l’entreprise a pour tâche principal d’orchestrer les services de l’entreprise et de les diriger ou « router » pour s’assurér que les bonnes fonctions soient appelées et les bonnes données crées.
Wikipedia (sur sa page anglophone, répertorie les caractéristiques élémentaires d’un ESB:
Invocation | support for synchronous and asynchronous transport protocols, service mapping (locating and binding) |
Routing | addressability, static/deterministic routing, content-based routing, rules-based routing, policy-based routing |
Mediation | adapters, protocol transformation, service mapping |
Messaging | message-processing, message transformation and message enhancement |
Process choreography | implementation of complex business processes |
Service orchestration | coordination of multiple implementation services exposed as a single, aggregate service |
Complex event processing | event-interpretation, correlation, pattern-matching |
Other quality of service | security (encryption and signing), reliable delivery, transaction management |
Management | monitoring, audit, logging, metering, admin console, BAM (BAM is not a management capability in other words the ESB doesn’t react to a specific threshold. It is a business service capability surfaced to end users. ) |
Agnosticism | general agnosticism to operating-systems and programming-languages; for example, it should enable interoperability between Java and .NET applications |
Protocol Conversion | comprehensive support for topical communication protocols service standards |
Message Exchange Patterns | support for various MEPs (Message Exchange Patterns) (for example: synchronous request/response, asynchronous request/response, send-and-forget, publish/subscribe) |
Adapters | adapters for supporting integration with legacy systems, possibly based on standards such as JCA |
Security | a standardized security-model to authorize, authenticate and audit use of the ESB |
Transformation | facilitation of the transformation of data formats and values, including transformation services (often via XSLT or XQuery) between the formats of the sending application and the receiving application |
Validation | validation against schemas for sending and receiving messages |
Governance | the ability to apply business rules uniformly |
Enrichment | enriching messages from other sources |
Split and Merge | the splitting and combining of multiple messages and the handling of exceptions |
Abstraction | the provision of a unified abstraction across multiple layers |
Routing and Transformation | routing or transforming messages conditionally, based on a non-centralized policy (without the need for a central rules-engine) |
Commodity Services | provisioning of commonly used functionality as shared services depending on context |
Toutes ces caractéristiques révèlent une plateforme logistique de l’information d’entreprise permettant de faire en sorte que les différentes applications communiquent entre elles tout en maîtrisant une logique et une sécurité centralisée à la différence de simples intégrations point à point que l’on pourrait réaliser avec un simple ETL.
Le panorama des solutions (sources wikippedia)
Commercial
- Talend Enterprise ESB
- SAP Process Integration
- Adeptia ESB Suite
- webmethods Enterprise Service Bus (SoftwareAG)
- (TIBCO) ActiveMatrix™ BusinessWorks
- IBM Integration Bus
- IBM WebSphere ESB
- Microsoft BizTalk Server
- Neudesic Neuron ESB
- Windows Azure Service Bus
- Oracle Enterprise Service Bus (BEA Logic)
- Progress Sonic ESB (acquired by Trilogy)
- Red Hat JBoss Fuse, originally Fuse ESB from IONA Technologies (later acquired by Progress Software)
- InterSystems Ensemble
- Mule ESB (Enterprise Edition)
Open-source
- Apache Camel
- Apache ServiceMix
- Apache Synapse
- Talend Open Studio for ESB
- JBoss ESB
- NetKernel
- Petals ESB
- Spring Integration
- Open ESB
- WSO2 ESB
- Mule ESB (Community Edition)
- UltraESB
- Red Hat Fuse ESB (based on Apache Camel)
Conclusion
Le but n’est pas de faire un cours sur l’ESB, il est plus de sensibiliser la sphère PLM qui ne le serait pas encore à ces problématiques d’intégration qui dépassent très largement la gestion de cycle de vie du produit mais qui sont essentielles à la réussite de projets PLM. C’est un socle primordial pour les futures implémentations PLM dans les entreprises. Donc si vous débutez un projet PLM sans savoir ce qu’est un ESB, vous avez sauté une étape !
Très bon article qui évoque la nécessité de partager l’information au sein de systèmes hétérogènes mais relatifs au PLM.
Il existe même des ESB spécialisés qui permettent de faire coexister / synchroniser des systèmes PLM (mais pas que) entre eux.
Je pense notamment à ProSTEP avec OpenPDM & T-Systems avec PDM WebConnector.
Merci, j’aimerai bien voir plus d’info sur le sujet. Est-ce que ces plateformes stockent de l’information? si oui est-ce qu’elles les stockent au format step ou est-ce que STEP n’est utilisé que dans la transmission des informations?